草庐IT

windbg 常用命令

全部标签

windows - 如何在 windbg 中通过句柄获取文件路径?

如何在内核模式下使用windbg/kd从句柄获取文件路径? 最佳答案 使用!handle7显示该句柄的详细信息,其中是句柄值,是进程ID值(均基于十六进制)请参见msdn链接以获取更多信息。您可以从用户模式session中获取您的进程ID,这是最简单的方法,只需在用户模式下附加并输入管道命令|它会像这样输出:.0id:1680attachname:D:\test\MyApp.exe所以1680将是procid,然后使用!handle列出句柄然后在内核态输入:!handle71680将显示您想要的内容,here上有一个有用的博客条目.

windows - Windbg:中断定时器/调度程序中断并打印 EIP

有没有办法在Windows的中断服务例程上设置断点,负责触发线程调度并打印被中断线程的EIP?我尝试使用hal!HalpClockInterrupt,但它似乎不是正确的位置。nt!KeUpdateRunTime接缝更好:Breakpoint3hitnt!KeUpdateRunTime:805410dca11cf0dfffmoveax,dwordptrds:[FFDFF01Ch]kd>!threadTHREAD82c23bf0Cid0320.0474Teb:7ffa2000Win32Thread:00000000RUNNINGonprocessor0Impersonationtoken:

windows - windbg 首先连接然后在内核调试期间停留在 "Debuggee not connected."消息上

我正在尝试进行Windows内核调试,因此我为此设置了两台机器:HOST-DEBUGGER-运行windbg调试器的计算机TARGET-DEBUGEE-被调试的计算机HOST和TARGET都运行Windows732位,并且都安装了WindowsDriverKit8.0。我做了以下步骤:在TARGET上,我使用以下命令启用了内核调试:bcdedit/copy{current}/d"Windows7wihdebug"bcdedit/debug{02b760e4-eafc-11e4-8847-ac1155aec81a}onbcdedit/dbgsettingsserialdebugport:

windows - 使用 WinDBG 从调用堆栈中查找 URL

我在转储文件中间歇性地收到浏览器挂起并出现此错误。在3次崩溃中使用!analyze-v后,我收到此错误并堆栈GetUrlPageData2(WinHttp)failed:12007.但是,我永远无法在我的转储文件中找到失败的URL。谁能帮忙?STACK_TEXT:0029e8fc5ffce1fd74ce14500000000000000000user32!NtUserWaitMessage+0x150029e9605ffd5f2c000000010070fab000000000ieframe!CBrowserFrame::FrameMessagePump+0x52e0029e9a85f

windows - ntdll 模块未在 windbg 中正确加载,但为什么?

我以前使用windbg进行用户模式调试,但我怀疑我对我的系统做了什么,因为我不记得之前使用扩展命令!heap时遇到过问题。我可以清楚地看到ntdll是一个加载的模块:77760000778e0000ntdll(pdbsymbols)C:\ProgramFiles(x86)\WindowsKits\8.1\Debuggers\x86\sym\wntdll.pdb\FA9C48F9C11D4E0894B8970DECD92C972\wntdll.pdb0:001>lmvmntdllstartendmodulename77760000778e0000ntdll(pdbsymbols)C:\P

windows - 在 vsjitdebugger 列表中包含 WinDbg

当vsjitdebugger在HKLM...\AeDebug中配置为默认调试器时,是否可以将WinDbg包含在vsjitdebugger显示的调试器列表中?理想情况下,我希望能够在vsjitdebugger的选项列表中包含更多命令行,当进程遇到未处理的异常时可用:使用DrWatson或使用WinDbg保存小型转储以供以后检查。 最佳答案 曾经有这样一个(未记录的)选项,直到VS7。该界面是一个名为vs7jit的工具.还讨论了here,以及那里提出的其他方向可能仍然有效-特别是JohnRobbins的“调试器选择器”代码。

Git使用:常用命令汇总

前言Git对于程序猿来说并不陌生,它是一款非常好用的项目管理工具,无论是前端开发还是后台开发,只要项目里面可以使用Git来管理,就会涉及代码的提交和合并操作,主要是常用的Git操作命令的使用,虽然目前有好多关于Git的可视化代码管理工具,但是掌握Git的命令行操作命令也是必备的。那么本篇文章就来分享一下在Git提交代码的时候使用纯Git命令行提交和合并操作的命令行使用,记录一下,方便查阅使用。 Git定义Git其实就是一个开源的分布式版本控制系统,它可以有效、高速地处理从很小到非常大的项目版本管理,也是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件,

Git使用:常用命令汇总

前言Git对于程序猿来说并不陌生,它是一款非常好用的项目管理工具,无论是前端开发还是后台开发,只要项目里面可以使用Git来管理,就会涉及代码的提交和合并操作,主要是常用的Git操作命令的使用,虽然目前有好多关于Git的可视化代码管理工具,但是掌握Git的命令行操作命令也是必备的。那么本篇文章就来分享一下在Git提交代码的时候使用纯Git命令行提交和合并操作的命令行使用,记录一下,方便查阅使用。 Git定义Git其实就是一个开源的分布式版本控制系统,它可以有效、高速地处理从很小到非常大的项目版本管理,也是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件,

windows - 在没有用户堆栈跟踪的情况下使用 windbg 进行内存泄漏调试

我有一个完整的内存转储,但在这种情况下,我没有与之配套的用户堆栈跟踪数据库,我有最新的符号和转储附带的原始二进制文件,通常,我一直能够使用!heap-p-aaddress查看分配时的调用堆栈,但如果没有用户堆栈跟踪数据库,这将无法工作。我的问题是是否有另一种方法(尽管不是那么直接的方法)来找到内存泄漏的根源。LFHKey:0x0000005c2dc22701Terminationoncorruption:ENABLEDHeapFlagsReservCommitVirtFreeListUCRVirtLockFast(k)(k)(k)(k)lengthblockscont.heap----

windows - 如何在 WinDbg 中列出线程(内核调试)

有谁知道我如何在内核调试时列出WinDbg中的所有线程。我发现较早的引用资料中写着“~”,但这不起作用。具体来说,我希望找到导致事件(即断点)的线程的ID。谢谢。 最佳答案 ~仅在用户模式下有效。要列出系统上的所有线程,它是!process01我记得(已经有一段时间了)。"SpecificallyIamlookingtothefindtheIDofathreadthatcausedanevent,namelyabreakpoint."从内核模式执行此语句没有多大意义。你能详细描述一下你的场景吗?编辑:啊,现在我明白了。你想知道你现在